package org.jeecg.modules.manage.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 签约人才表
 * @Author: yfkj
 * @Date:   2023-01-12
 * @Version: V1.0
 */
@Data
@TableName("caishui_member")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="caishui_member对象", description="签约人才表")
public class CaishuiMember implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

	/**税源地ID*/
	@Excel(name = "服务公司", width = 25, dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
	@Dict(dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "税源地ID", required = true)
    private String companyId;

	/**商户ID*/
	@Excel(name = "签约商户", width = 25, dictTable = "caishui_business", dicText = "name", dicCode = "id")
	@Dict(dictTable = "caishui_business", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "商户ID", required = true)
    private String businessId;

    /**租户ID*/
    @ApiModelProperty(value = "租户ID", required = true)
    private Long tenantId;

	/**签约服务类型（多个英文逗号隔开）*/
	@Excel(name = "签约服务类型", width = 25, dictTable = "caishui_signing_service", dicText = "name", dicCode = "id")
	@Dict(dictTable = "caishui_signing_service", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "签约服务类型ID（多个英文逗号隔开）", required = true)
    private String signingServiceId;

	/**编码*/
    @ApiModelProperty(value = "编码")
    private String code;

	/**姓名*/
	@Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名", required = true)
    private String name;

	/**手机号码*/
	@Excel(name = "手机号码", width = 15)
    @ApiModelProperty(value = "手机号码", required = true)
    private String phone;

	/**昵称*/
	@Excel(name = "昵称", width = 15)
    @ApiModelProperty(value = "昵称")
    private String nickName;

	/**头像*/
    @ApiModelProperty(value = "头像")
    private String avatarUrl;

	/**性别*/
	@Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private Integer sex;

	/**生日*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "生日")
    private Date birthday;

	/**民族*/
    @ApiModelProperty(value = "民族")
    private String nation;

	/**证件类型：1-身份证，2-港澳台通行证，3-护照，4-军官证*/
	@Excel(name = "证件类型", width = 15, dicCode = "id_card_type")
	@Dict(dicCode = "id_card_type")
    @ApiModelProperty(value = "证件类型：1-身份证，2-港澳台通行证，3-护照，4-军官证")
    private Integer idCardType;

	/**身份证号码*/
	@Excel(name = "证件号码", width = 20)
    @ApiModelProperty(value = "身份证号码", required = true)
    private String idCard;

	/**身份证正面照*/
    @ApiModelProperty(value = "身份证正面照", required = true)
    private String idCardZm;

	/**身份证反面照*/
    @ApiModelProperty(value = "身份证反面照", required = true)
    private String idCardFm;

	/**证件地址*/
    @ApiModelProperty(value = "证件地址")
    private String idCardAddress;

	/**发证机关*/
    @ApiModelProperty(value = "发证机关")
    private String idCardOffice;

	/**证件有效期止*/
    @ApiModelProperty(value = "证件有效期止")
    private String idCardValid;

	/**银行卡类型：OTHERBANK-银行卡，ALIPAY-支付宝，WECHAT-微信*/
	@Excel(name = "收款类型", width = 15, dicCode = "bank_card_type")
	@Dict(dicCode = "bank_card_type")
    @ApiModelProperty(value = "银行卡类型：OTHERBANK-银行卡，ALIPAY-支付宝，WECHAT-微信")
    private String bankCardType;

	/**银行卡账号*/
	@Excel(name = "收款账号", width = 20)
    @ApiModelProperty(value = "银行卡账号", required = true)
    private String bankCardAccount;

	/**支付宝ID*/
    @ApiModelProperty(value = "支付宝ID")
    private String bankZfbId;

	/**微信ID*/
    @ApiModelProperty(value = "微信ID")
    private String bankWxId;

	/**签约类型：1-e签宝，2-批量导入*/
//	@Dict(dicCode = "caishui_member_signing_type")
    @ApiModelProperty(value = "签约类型：1-e签宝，2-批量导入")
    private Integer signingType;

	/**签约文件地址*/
    @ApiModelProperty(value = "签约文件地址")
    private String signingFile;

	/**用户状态：1-正常，2-冻结*/
	@Excel(name = "用户状态", width = 15, dicCode = "user_status")
	@Dict(dicCode = "user_status")
    @ApiModelProperty(value = "用户状态：1-正常，2-冻结")
    private Integer status;

	/**签约状态：0-待签约，1-签约中，2-已签约，3-失败，4-拒签*/
	@Excel(name = "签约状态", width = 15, dicCode = "caishui_member_signing_status")
	@Dict(dicCode = "caishui_member_signing_status")
    @ApiModelProperty(value = "签约状态：0-待签约，1-签约中，2-已签约，3-失败，4-拒签")
    private Integer signingStatus;

	/**签约备注/拒绝原因*/
    @ApiModelProperty(value = "签约备注/拒绝原因")
    private String signingRemark;

    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    @Excel(name = "签约日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;

    /**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;


    /**签名图片*/
    @TableField(exist = false)
    private String signImg;

}
